//************************************************************
//    > File Name: palindrome.cpp
//    > Author: davis
//    > Mail:  
//    > Created Time: 2017年03月27日  9:48:08
//***********************************************************
//lintcode #415
#include<bits/stdc++.h>
using namespace std;
bool check(char ch){
	if((ch>='a' && ch <='z') || (ch >='A' && ch <='A') || (ch >='0' && ch <= '9'))
		return true;
	return false;
}
bool isPalindrome(string& s){
	for(int i=0,j=s.length()-1;i<j;++i,--j){
		if(i<j && !check(s[i])) ++i;
		if(i<j && !check(s[j])) --j;
		if(toupper(s[i])!=toupper(s[j])) return false;
	}
	return true;
}
int main(){
	string a="A man,a plan,a canal:panama";
	cout<<isPalindrome(a)<<endl;
}
